package com.asiainfo.indb.control.db;

import com.asiainfo.indb.control.LogService;
import com.asiainfo.indb.model.InDbGather;

/**
 * 方言接口
 *
 * @author zym
 * @date 2019-10-18 13:02
 */
public interface IDialect {

    /**
     * 获取方言名
     *
     * @return 名称
     */
    String getDialectName();

    /**
     * 获取表列的SQL
     *
     * @param tableName 表名
     * @return SQL
     */
    String getColsSQL(String tableName);

    /**
     * 获取当前方言的驱动类
     *
     * @return 驱动类
     */
    String getDriverClass();

    /**
     * 获取对应方言的入库类
     *
     * @param gather 数据
     * @param log    日志
     * @return 入库类
     */
    FileLineInDb getFileLineInDb(InDbGather gather, LogService log);

    /**
     * 获取新增SQL
     *
     * @param tb    表
     * @param cols  列
     * @param batch 是否批量
     * @return sql
     */
    String getInsertSQL(String tb, String[] cols, boolean batch);

}